
import { _decorator, Component, Node } from 'cc';
const { ccclass, property } = _decorator;

// electron模块，打包web-mobil后在HTML中定义全局变量electron
const electron = (window as any).electron;

@ccclass("Electron")
export class Electron extends Component {

    // 移动窗口到中心
    center () {
        electron.ipcRenderer.send("e_center");
    }

    // 全屏专用函数，e代表electron
    static fullScreen () {
        electron.ipcRenderer.send("e_fullScreen");
    }

    // 窗口化专用函数
    static window () {
        electron.ipcRenderer.send("e_window");
    }

    // 打开开发者工具
    static openDevTools () {
        electron.ipcRenderer.send("e_openDevTools");
    }

    // 关闭开发者工具
    static closeDevTools () {
        electron.ipcRenderer.send("e_closeDevTools");
    }

    // 设置窗口大小
    static setSize (width: number, height: number) {
        electron.ipcRenderer.send("e_setSize", width.toString(), height.toString());
    }

    // 设置分辨率，修改的电脑的分辨率
    static setResolution (width: number, height: number) {
        electron.ipcRenderer.send("e_setResolution", width.toString(), height.toString());
    }

    // 当前是否全屏
    static isFullScreen (): boolean {
        return electron.ipcRenderer.sendSync("e_isFullScreen");
    }

    // 设置分辨率，这才是最终调用的接口，如果全屏设置分辨率，不全屏设置窗口大小
    static setScreenResolution(width: number, height: number) {
        if (this.isFullScreen() == true) {
            this.setResolution(width, height);
        } else {
            this.setSize(width, height);
        }
    }

    // 自定义nircmd命令，不需要在前面输入nircmd.exe
    static nircmdUD (order: string) {
        electron.ipcRenderer.send("e_nircmdUD", order);
    }

    // 获取一些信息，返回string
    static getMassage (): string {
        return electron.ipcRenderer.sendSync("e_getMassage");
    }


    // 获取屏幕支持的所有分辨率，是一个string的数组，eg:[1920×1080, 800×600]
    static getAllResolutions (): string[] {
        return electron.ipcRenderer.sendSync("e_getAllResolutions");
    }

    // 获取当前的屏幕分辨率，是一个string变量，eg:1920×1080
    static getCurrentResolution (): string {
        return electron.ipcRenderer.sendSync("e_getCurrentResolution");
    }

    // 退出游戏
    static quit () {
        electron.ipcRenderer.send("e_quit");
    }


}